package factory;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;


public class MyFactory {
    //
    private Properties pro = new Properties();

    public MyFactory() {
        try {
            //在我们实例化工厂类的时候进行配置文件的读取
            InputStream resourceAsStream = MyFactory.class.getResourceAsStream("/bean.properties");
            //这个配置文件里面都是我们需要使用到的一些类信息
            pro.load(resourceAsStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public Object getBean(String beanName){
        try {
            //通过beanName来获取bean的全路径名===>使用pro里面的key值来获取多于的全路径名
            String path = pro.getProperty(beanName);
            //通过全路径名获取类对象
            Class<?> aClass = Class.forName(path);
            //以类对象构造实例
            return aClass.newInstance();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InstantiationException e) {
            e.printStackTrace();
        }
        return null;
    }



}
